Computer systems have found numerous applications in the industrial automation environment and are employed ubiquitously throughout, e.g., to control and/or monitor the operation of an industrial process, machine, tool, device, and the like. To facilitate control of a process, etc., one or more controllers (e.g., a programmable logic controller (PLC)) are utilized with input/output (I/O) devices controlling operation of the process along with gathering process information (e.g., measurements, data, values, parameters, variables, metadata) pertaining to how the process is performing.
During operation of an industrial process, oftentimes software applications being utilized to control and/or monitor one or more machines, devices, etc., included in the industrial process will have to be replaced (e.g., partially or entirely) owing to a newer version of software being ready to be deployed, a software vulnerability has been detected, etc. Typically, updating an initial software with a newer version requires the one or more devices associated with the software (e.g., a PLC having the initial software installed thereon) to be taken “off-line”, which can cause unwanted disruption (e.g., downtime) of the industrial process operation, e.g., in a high consequence environment. The downtime can be lengthy as the whole industrial process may have to be shut down and subsequently restarted, with inherent cost and possible technical issues (e.g., having the industrial process return to an optimum operating state). Hence, with a conventional approach to software upgrade, a situation can arise where the software has been identified as being vulnerable to attack, but a software patch cannot be applied in a timely manner owing to a high availability requirement for the industrial process. By way of illustration, an energy producing process may be unable to be taken offline even though a vulnerability to the software exists, and rather, installation of a software patch may be postponed until a planned outage occurs (e.g., quarterly, annual, biannual scheduled maintenance).